package org.nokatag.tagjava;

import javax.servlet.http.HttpServletRequest;

import org.nokatag.elfunction.ELFunction;
import org.nokatag.system.Concest;
import org.nokatag.system.ReValueDoc;

public class GridStyle {
	/**
	 * 主表样式
	 * @param styleid
	 * @param request
	 * @return
	 */
	public static String GetStyle(Integer styleid,HttpServletRequest request){
		return GetStyle("dbgrid",styleid,request);
	}
	/**
	 * 
	 * @param styleid
	 * @param request
	 * @return
	 */
	public static String GetStyle(String node,Integer styleid,HttpServletRequest request){
		if(styleid==-1){
			return "";//使用外部样式
		}else if(Concest.TABLEMODESTR!=null && !Concest.TABLEMODESTR.isEmpty() && Concest.TABLEMODESTR.get(node+"_"+styleid)!=null){
			return Concest.TABLEMODESTR.get(node+"_"+styleid);//返回缓存的样式
		}
		return null;
	}
	
	/**
	 * 子表样式
	 * @param styleid
	 * @param request
	 * @return
	 */
	public static String GetSubStyle(Integer styleid,HttpServletRequest request){
		String body= null;
		try{
			//------------替换配置常量----------------------
			body= Concest.TABLEMODESUBSTR.get(styleid);
		     for(ReValueDoc rd:Concest.REVALUELIST){
		    	 try{
			    	 if(rd.getType().equals(ReValueDoc.REQUEST))
			    		 body=body.replace("${"+rd.getKey()+"}",request.getAttribute(rd.getRevalue()).toString());
			    	 else if(rd.getType().equals(ReValueDoc.SESSION))
			    		 body=body.replace("${"+rd.getKey()+"}",request.getSession().getAttribute(rd.getRevalue()).toString());
			    	 else if(rd.getType().equals(ReValueDoc.CONST))
			    		 body=body.replace("${"+rd.getKey()+"}",rd.getRevalue());
			    	 else if(rd.getType().equals(ReValueDoc.PARAMENTER))
			    		 body=body.replace("${"+rd.getKey()+"}",request.getParameter(rd.getRevalue()));
		    	 }catch(Exception e){}
		     }
		     body=body.replace("${rootpath}",ELFunction.rooturl(request));
		}catch(Exception se){
			se.printStackTrace();
		}
		return body;
	}
	/**
	 * <p>@Description 主表自定义单元格</p>
	 * <p>author rebin </p>
	 * <p>@Time 下午11:06:13</p>
	 * <p>xiefangjian@163.com</p>
	 * @param styleid
	 * @param request
	 * @return
	 */
	public static String GetCellBody(Integer styleid,HttpServletRequest request){
		String body= null;
		try{
			//------------替换配置常量----------------------
			body= Concest.TABLEMODECELLBODY.get(styleid);
		     for(ReValueDoc rd:Concest.REVALUELIST){
		    	 try{
			    	 if(rd.getType().equals(ReValueDoc.REQUEST))
			    		 body=body.replace("${"+rd.getKey()+"}",request.getAttribute(rd.getRevalue()).toString());
			    	 else if(rd.getType().equals(ReValueDoc.SESSION))
			    		 body=body.replace("${"+rd.getKey()+"}",request.getSession().getAttribute(rd.getRevalue()).toString());
			    	 else if(rd.getType().equals(ReValueDoc.CONST))
			    		 body=body.replace("${"+rd.getKey()+"}",rd.getRevalue());
			    	 else if(rd.getType().equals(ReValueDoc.PARAMENTER))
			    		 body=body.replace("${"+rd.getKey()+"}",request.getParameter(rd.getRevalue()));
		    	 }catch(Exception s){}
		     }
		     body=body.replaceAll("(?i)\\$\\{rootpath\\}",ELFunction.rooturl(request));
		}catch(Exception se){
			se.printStackTrace();
		}
		return body;
	}
}
